package org.framework.edge.builder.application;

import org.wu.framework.web.response.Result;
import org.wu.framework.web.response.ResultFactory;
import org.framework.edge.builder.domain.model.docker.builder.DockerBuilder;
import org.framework.edge.builder.application.command.docker.builder.DockerBuilderRemoveCommand;
import org.framework.edge.builder.application.command.docker.builder.DockerBuilderStoryCommand;
import org.framework.edge.builder.application.command.docker.builder.DockerBuilderUpdateCommand;
import org.framework.edge.builder.application.command.docker.builder.DockerBuilderQueryListCommand;
import org.framework.edge.builder.application.command.docker.builder.DockerBuilderQueryOneCommand;
import org.framework.edge.builder.application.dto.DockerBuilderDTO;
import java.util.List;
import org.wu.framework.lazy.orm.database.lambda.domain.LazyPage;
import org.framework.edge.builder.application.command.docker.builder.DockerBuilderExcelExport;
import org.framework.edge.builder.application.command.docker.builder.DockerBuilderExcelImport;
/**
 * describe docker 打包 
 *
 * @author Jia wei Wu
 * @date 2025/07/08 06:06 晚上
 * @see org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication 
 **/

public interface DockerBuilderApplication {


    /**
     * describe 新增docker 打包
     *
     * @param dockerBuilderStoryCommand 新增docker 打包     
     * @return {@link Result<DockerBuilder>} docker 打包新增后领域对象     
     
     * @author Jia wei Wu
     * @date 2025/07/08 06:06 晚上
     **/

    Result<DockerBuilder> story(DockerBuilderStoryCommand dockerBuilderStoryCommand);

    /**
     * describe 批量新增docker 打包
     *
     * @param dockerBuilderStoryCommandList 批量新增docker 打包     
     * @return {@link Result<List<DockerBuilder>>} docker 打包新增后领域对象集合     
     
     * @author Jia wei Wu
     * @date 2025/07/08 06:06 晚上
     **/

    Result<List<DockerBuilder>> batchStory(List<DockerBuilderStoryCommand> dockerBuilderStoryCommandList);

    /**
     * describe 更新docker 打包
     *
     * @param dockerBuilderUpdateCommand 更新docker 打包     
     * @return {@link Result<DockerBuilder>} docker 打包领域对象     
     
     * @author Jia wei Wu
     * @date 2025/07/08 06:06 晚上
     **/

    Result<DockerBuilder> updateOne(DockerBuilderUpdateCommand dockerBuilderUpdateCommand);

    /**
     * describe 查询单个docker 打包
     *
     * @param dockerBuilderQueryOneCommand 查询单个docker 打包     
     * @return {@link Result<DockerBuilderDTO>} docker 打包DTO对象     
     
     * @author Jia wei Wu
     * @date 2025/07/08 06:06 晚上
     **/

    Result<DockerBuilderDTO> findOne(DockerBuilderQueryOneCommand dockerBuilderQueryOneCommand);

    /**
     * describe 查询多个docker 打包
     *
     * @param dockerBuilderQueryListCommand 查询多个docker 打包     
     * @return {@link Result <List<DockerBuilderDTO>>} docker 打包DTO对象     
     
     * @author Jia wei Wu
     * @date 2025/07/08 06:06 晚上
     **/

    Result <List<DockerBuilderDTO>> findList(DockerBuilderQueryListCommand dockerBuilderQueryListCommand);

    /**
     * describe 分页查询多个docker 打包
     *
     * @param dockerBuilderQueryListCommand 分页查询多个docker 打包     
     * @return {@link Result <LazyPage<DockerBuilderDTO>>} 分页docker 打包DTO对象     
     
     * @author Jia wei Wu
     * @date 2025/07/08 06:06 晚上
     **/

    Result <LazyPage<DockerBuilderDTO>> findPage(int size,int current,DockerBuilderQueryListCommand dockerBuilderQueryListCommand);

    /**
     * describe 删除docker 打包
     *
     * @param dockerBuilderRemoveCommand 删除docker 打包     
     * @return {@link Result<DockerBuilder>} docker 打包     
     
     * @author Jia wei Wu
     * @date 2025/07/08 06:06 晚上
     **/

    Result<DockerBuilder> remove(DockerBuilderRemoveCommand dockerBuilderRemoveCommand);

    /**
     * describe 导出docker 打包
     *
     * @param dockerBuilderQueryListCommand 导出docker 打包     
     * @return {@link List<DockerBuilderExcelExport>} docker 打包     
     
     * @author Jia wei Wu
     * @date 2025/07/08 06:06 晚上
     **/

    public List<DockerBuilderExcelExport> exportExcel(DockerBuilderQueryListCommand dockerBuilderQueryListCommand);

    /**
     * describe 导入docker 打包
     *
     * @param dockerBuilderExcelImportList 导入docker 打包     
     * @return {@link Result<List<DockerBuilderExcelImport>>} docker 打包     
     
     * @author Jia wei Wu
     * @date 2025/07/08 06:06 晚上
     **/

    public Result<List<DockerBuilderExcelImport>> importExcel(List<DockerBuilderExcelImport> dockerBuilderExcelImportList);

}